C++整型指针赋值的问题
我申明一个整型的指针并对其数组用变量i进行赋值,我每次执行到循环内的时候就出现segmentationfault错误,请问写错在哪里?inti,*p;for(i=0;i<...
我申明一个整型的指针并对其数组用变量 i 进行赋值,我每次执行到循环内的时候就出现segmentation fault错误,请问写错在哪里?
int i,*p;
for(i=0;i<256;i++){
*(p+i)=i;
}
程序代码应该是这样的。
int i,*p;
p=(int *)malloc(sizeof(int));
for(i=0;i<256;i++){
*(p+i)=i;
} 展开
int i,*p;
for(i=0;i<256;i++){
*(p+i)=i;
}
程序代码应该是这样的。
int i,*p;
p=(int *)malloc(sizeof(int));
for(i=0;i<256;i++){
*(p+i)=i;
} 展开
5个回答
展开全部
p这个指针变量没有分配存储空间就开始向他指向的地址存值了,当然是错的
int *p=(int *)malloc(256*sizeof(int));//让他指向一块动态分配的内存块就行了
或者
int a[256]={0};
int i,*p;
p=a;
for(i=0;i<256;i++)
{
*(p+i)=i;
}
这样也行,让p指向确定的数组a
你动态分配的内存只能存一个int,
p=(int *)malloc(sizeof(int));
改成
p=(int *)malloc(sizeof(int)*256);
int *p=(int *)malloc(256*sizeof(int));//让他指向一块动态分配的内存块就行了
或者
int a[256]={0};
int i,*p;
p=a;
for(i=0;i<256;i++)
{
*(p+i)=i;
}
这样也行,让p指向确定的数组a
你动态分配的内存只能存一个int,
p=(int *)malloc(sizeof(int));
改成
p=(int *)malloc(sizeof(int)*256);
展开全部
p这个指针变量没有分配存储空间就开始向他指向的地址存值了,当然是错的
int
*p=(int
*)malloc(256*sizeof(int));//让他指向一块动态分配的内存块就行了
或者
int
a[256]={0};
int
i,*p;
p=a;
for(i=0;i<256;i++)
{
*(p+i)=i;
}
这样也行,让p指向确定的数组a
你动态分配的内存只能存一个int,
p=(int
*)malloc(sizeof(int));
改成
p=(int
*)malloc(sizeof(int)*256);
int
*p=(int
*)malloc(256*sizeof(int));//让他指向一块动态分配的内存块就行了
或者
int
a[256]={0};
int
i,*p;
p=a;
for(i=0;i<256;i++)
{
*(p+i)=i;
}
这样也行,让p指向确定的数组a
你动态分配的内存只能存一个int,
p=(int
*)malloc(sizeof(int));
改成
p=(int
*)malloc(sizeof(int)*256);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
char*p="abc";
是在内存开辟4个字节的存储空间,依次存放'a'
'b'
'c'
'\0'
4个字符
并把存'a'的那个字节的地址
赋值给指针p
char*p
;
是说
定义一个指向字符型数据的指针p
指针p在内存中以
unsigned
int数据类型存放
而非以char类型存放
*p=*(p+0)=p[0]
是在内存开辟4个字节的存储空间,依次存放'a'
'b'
'c'
'\0'
4个字符
并把存'a'的那个字节的地址
赋值给指针p
char*p
;
是说
定义一个指向字符型数据的指针p
指针p在内存中以
unsigned
int数据类型存放
而非以char类型存放
*p=*(p+0)=p[0]
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你好,你应该通过malloc申请空间,或者是用数组
现在你这样p+i指向的是一个未知空间,可能是系统需要用到的,不允许你更改内容,即使允许你这样也是不对的,因为这个空间属于这个程序,用它就是错误的。
现在你这样p+i指向的是一个未知空间,可能是系统需要用到的,不允许你更改内容,即使允许你这样也是不对的,因为这个空间属于这个程序,用它就是错误的。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你只申请了一个int的空间,却操作了256个int,当然不对了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询