什么时候用动态指针、什么时候用静态指针?
请教大家两个有关指针的问题:问题一是指针的定义:为什么下面代码中,(int*)这种定义方法会报错?
int return_test (int *p)
{
int temp;
(*p) = (*p)+1;
temp = *p; // 这里简化m和temp的关系,只是看看能不能既修改m又返回temp
return temp;
}
int main ()
{
int *p;
p = (int*)123; // 这种指针定义不对么?
for (i=0; i<10; i++) printf("%d ", return_test(p));
return 0;
}
这个程序运行起来报错“segmentation fault”……请问到底错在了哪里?
问题二是指针应该用动态、还是用静态:
再看上面的main函数里的指针,p = (int*)123; 那么是否有必要再写一句 p = (int *)malloc(sizeof(int)); 让指针m获取动态分配的内存空间地址?分配和不分配有区别么?什么时候用动态指针、什么时候用静态指针?
恳请指点!谢谢了先!