Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在c中声明静态变量时_C_Pointers_Malloc - Fatal编程技术网

在c中声明静态变量时

在c中声明静态变量时,c,pointers,malloc,C,Pointers,Malloc,在C中声明静态变量时 假设您编写了这样一个程序: int *c; void foo(){ c = (int *) malloc (10*sizeof(int)); c = &c[3]; *c = *&c[3]; } 有*c意味着什么?我的意思是,我明白,这意味着它指向某个东西,但是*c做什么呢 还有,为什么需要强制转换int*malloc的返回值 在C中声明静态变量时 与此问题无关,或至少与您显示的代码无关 但是*c做什么呢 假设您的问题与语句*c=*&

在C中声明静态变量时

假设您编写了这样一个程序:

int *c;
void foo(){
    c = (int *) malloc (10*sizeof(int));
    c = &c[3];
    *c = *&c[3];
}
有*c意味着什么?我的意思是,我明白,这意味着它指向某个东西,但是*c做什么呢

还有,为什么需要强制转换int*malloc的返回值

在C中声明静态变量时

与此问题无关,或至少与您显示的代码无关

但是*c做什么呢

假设您的问题与语句*c=*&c[3];,它是指c持有的地址处的对象

你为什么要在malloc面前施放int*

你不应该。请输入malloc[和family]的返回值

注意:您的代码片段非常糟糕,很可能是无效的。c=&c[3];明显的内存泄漏

我的意思是,我明白,这意味着它指向某个东西,但是*c做什么呢

*并不总是意味着它指向某物。 例子: 如果你这样写:

int* c;
这意味着c是指向int变量的指针

当您喜欢这样做时:

int* c = &x;
*c = 5;

第二个*是指针c

1。学习语言的基础知识。每次学习一个小问题需要几十年的时间。2.这与静态变量无关。你推荐任何网站来学习c juanchopanza的基础知识吗?那么int*c;,是什么类型的变量呢@PeterChung c是指向int的指针。感谢@Quentin的修复和OP最新问题的答案。坦率地说,我有点惊讶于我自己怎么/为什么没有回答这个问题。困惑的