我试图了解 realloc 的工作原理。这是我的程序。它给出了一些奇怪的错误。谁能帮我?我只是想对数组 a 进行重新分配。任何帮助表示赞赏。
#include<stdio.h>
int main()
{
char a[5]="abcd";
char *p;
p = realloc(a,10);
strcpy(a,"abcdefghi");
printf("%s", a);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
您必须传递realloc一个指向由其malloc或其朋友分配的内存的指针。在您的代码中,您传递的a是堆栈分配的变量。
请注意,您无法修改堆栈分配数据的大小,因此如果您的代码确实需要修改变量的大小,则必须在堆上分配该变量。
| 归档时间: |
|
| 查看次数: |
1984 次 |
| 最近记录: |