gpt4 book ai didi

c - 通过另一个指针分配二维数组时整数指针不起作用?

转载 作者:太空宇宙 更新时间:2023-11-04 06:02:21 24 4
gpt4 key购买 nike

我试图使用指针将一个二维数组的内容复制到另一个。我写了这个简单的测试程序,但它显示了段错误,但我仍然找不到可靠的原因?

    #include <stdio.h>

void main(){
int m[2][3]={
{2,3,4},{5,6,7}
};

int *p=m;
int *n;

int i,j;

for(i=0;i<2;i++){
for(j=0;j<3;j++){
printf("%d \t", *(p+3*i+j));
printf("Debug here\n");
*(n+3*i+j)=*(p+3*i+j);
}

printf("\n");
}
}

// Output:
// 2 Debug here
// Segmentation fault (core dumped)

最佳答案

int *n 是一个单元化指针,您从未为其分配内存,因此您正试图将您的副本写入未知区域。

您可以使用以下方法将空间分配给 n:

int *n = (int *)malloc(2 * 3 * sizeof(int));

关于c - 通过另一个指针分配二维数组时整数指针不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17006158/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com