出现这个错误的原因是试图将在函数内部定义的本地变量的地址传递给函数外部的指针。本地变量在函数调用结束后被销毁,因此在函数外部引用本地变量的地址可能会导致未定义的行为。解决方法是使用动态分配的内存(使用malloc或new)创建一个指向变量的指针,在函数结束后释放它的内存。例如:
int* createArray(int size) { int arr = (int)malloc(size * sizeof(int)); for(int i = 0; i < size; i++) { arr[i] = i+1; } return arr; }
int main() { int size = 5; int *myArr = createArray(size); for(int i = 0; i < size; i++) { printf("%d ", myArr[i]); } free(myArr); return 0; }
上一篇:本地变量df在分配之前被引用(Bokeh交互式可视化)
下一篇:本地变量和内存泄漏