这两段代码之间有什么区别?
// Structure
struct file {
int fileSize;
};
int main(void) {
// Variables
struct file *pFile = (struct file*) malloc(sizeof(struct file)); // Declare pointer of type struct file and allocate enough room
pFile->fileSize = 5;
free(pFile);
return 0;
}
和
// Structure
struct file {
int fileSize;
} file1;
int main(void) {
// Variables
struct file *pFile = &file1; // Declare pointer of type struct file and point to file1 struct
pFile->fileSize = 5;
return 0;
}
这里有什么重要的东西吗?我想也许面值很明智,这些是相同的,但底层的内存分配是不同的?我只是无法把握它。
答案 0 :(得分:1)
这里有几点不同:
答案 1 :(得分:0)
在您的第一个代码段pFile
中指向动态分配的内存。
在第二个代码段中,pFile
指向全局变量。
除了你自己需要free
动态的(除此之外你还没有)之外,你与{{1}交互的方式在任何一种情况下,完全都是相同的。