访问使用Malloc创建的数组
这有什么问题? 为什么它不起作用?其显示分段故障(堆芯倾倒) 我们不能使用访问使用Malloc创建的数组,c,arrays,malloc,C,Arrays,Malloc,这有什么问题? 为什么它不起作用?其显示分段故障(堆芯倾倒) 我们不能使用a[I] #include<stdio.h> int main() { int *a,i,n; scanf("%d",&n); *a=malloc(n*sizeof(int)); for(i=0;i<n;i++) a[i]=i; free(a); return(0); } #包括 int main() { int*a,i,n; scanf(“%d”和“
a[I]
#include<stdio.h>
int main()
{
int *a,i,n;
scanf("%d",&n);
*a=malloc(n*sizeof(int));
for(i=0;i<n;i++)
a[i]=i;
free(a);
return(0);
}
#包括
int main()
{
int*a,i,n;
scanf(“%d”和“&n”);
*a=malloc(n*sizeof(int));
对于(i=0;i您正在将a
指向的内存地址设置为malloc返回的地址。由于a
尚未初始化,您正在将内存的未定义部分设置为malloc返回的地址
*a=malloc(n*sizeof(int));
相反,设置指针本身
a=malloc(n*sizeof(int));
您正在将a
指向的内存地址设置为malloc返回的地址。由于a
尚未初始化,因此您正在将内存的未定义部分设置为malloc返回的地址
*a=malloc(n*sizeof(int));
相反,设置指针本身
a=malloc(n*sizeof(int));
您正在将a
指向的内存地址设置为malloc返回的地址。由于a
尚未初始化,因此您正在将内存的未定义部分设置为malloc返回的地址
*a=malloc(n*sizeof(int));
相反,设置指针本身
a=malloc(n*sizeof(int));
您正在将a
指向的内存地址设置为malloc返回的地址。由于a
尚未初始化,因此您正在将内存的未定义部分设置为malloc返回的地址
*a=malloc(n*sizeof(int));
相反,设置指针本身
a=malloc(n*sizeof(int));
*a=malloc(n*sizeof(int));
应该是a=malloc(n*sizeof(int));
malloc()
分配存储并返回指向第一个字节的指针
Asa
is指针变量应指向地址
其中as*a
在这种情况下是不正确的,因为*
以及指针用于反引用。*a=malloc(n*sizeof(int));
应该是a=malloc(n*sizeof(int));
malloc()
分配存储并返回指向第一个字节的指针
Asa
is指针变量应指向地址
其中as*a
在这种情况下是不正确的,因为*
以及指针用于反引用。*a=malloc(n*sizeof(int));
应该是a=malloc(n*sizeof(int));
malloc()
分配存储并返回指向第一个字节的指针
Asa
is指针变量应指向地址
其中as*a
在这种情况下是不正确的,因为*
以及指针用于反引用。*a=malloc(n*sizeof(int));
应该是a=malloc(n*sizeof(int));
malloc()
分配存储并返回指向第一个字节的指针
Asa
is指针变量应指向地址
其中as*a
在本例中是不正确的,因为*
连同指针一起用于反引用。请启用编译器警告;应该有什么东西在向您尖叫:
*a=malloc(n*sizeof(int));
上面说:
分配一些内存
将该地址分配给a
指向的整数(未初始化且指向未知位置)
一个
本身仍然没有什么特别的意义
然后:
写入那个随机空间
你想说:
a = malloc(n * sizeof(int));
请启用编译器警告;应该有东西在向您尖叫:
*a=malloc(n*sizeof(int));
上面说:
分配一些内存
将该地址分配给a
指向的整数(未初始化且指向未知位置)
一个
本身仍然没有什么特别的意义
然后:
写入那个随机空间
你想说:
a = malloc(n * sizeof(int));
请启用编译器警告;应该有东西在向您尖叫:
*a=malloc(n*sizeof(int));
上面说:
分配一些内存
将该地址分配给a
指向的整数(未初始化且指向未知位置)
一个
本身仍然没有什么特别的意义
然后:
写入那个随机空间
你想说:
a = malloc(n * sizeof(int));
请启用编译器警告;应该有东西在向您尖叫:
*a=malloc(n*sizeof(int));
上面说:
分配一些内存
将该地址分配给a
指向的整数(未初始化且指向未知位置)
一个
本身仍然没有什么特别的意义
然后:
写入那个随机空间
你想说:
a = malloc(n * sizeof(int));
应该是a=malloc,删除*1。做一点缩进。2.打开编译器警告。-行*a=malloc(n*sizeof(int));
不正确。3.检查scanf
函数的返回值应该是a=malloc,删除*1。做一点缩进。2.打开编译器警告。-行*a=malloc(n*sizeof(int));
不正确。3.检查scanf
函数的返回值应为a=malloc,删除*1.进行一点缩进。2.打开编译器警告。-行*a=malloc(n*sizeof(int));
不正确。3.检查scanf
函数的返回值应该是a=malloc,去掉*1.做一点缩进。2.打开编译器警告。-行*a=malloc(n*sizeof(int));
不正确。3.检查scanf
的返回值function@ryyker:谢谢:)@瑞克:谢谢:)@瑞克:谢谢:)@瑞克:谢谢:)