Tag: function parameter

使用指针或对struct的引用

我和我的朋友在我们的代码中使用结构(我们的代码彼此分开)。 让我们看看以下示例: struct Book { char title; int pages; } void setBook(struct Book *tempBook) { tempBook->title = “NiceTitle”; tempBook->pages = 50; } 上面的代码很简单。 问题是,拥有这两个主电源是否有任何区别: int main() { struct book obj1; setBook(&obj); } 要么 int main() { struct Book *obj2; setBook(obj2); } 编辑:我的发言中并不清楚。 我已经将品酒初始化为 struct Book *obj2 = malloc(sizeof(struct obj2));

函数参数中的字符串

int main() { char *x = “HelloWorld”; char y[] = “HelloWorld”; x[0] = ‘Z’; //y[0] = ‘M’; return 0; } 在上面的程序中, HelloWorld将处于只读部分(即字符串表)。 x将指向该只读部分,因此尝试修改该值将是未定义的行为。 但是y将被分配在堆栈中, HelloWorld将被复制到该内存中。 所以修改y将正常工作。 字符串文字:指针与字符数组 这是我的问题: 在以下程序中,如果内容被修改, char *arr和char arr[]都会导致分段错误。 void function(char arr[]) //void function(char *arr) { arr[0] = ‘X’; } int main() { function(“MyString”); return 0; } 它在function参数上下文中有何不同? 没有为函数参数分配内存? 请分享您的知识。