相关疑难解决方法(0)

如何在C中将函数作为参数传递?

我想创建一个函数来执行由一组数据上的参数传递的函数.如何在C中将函数作为参数传递?

c parameters syntax pointers function

559
推荐指数
6
解决办法
51万
查看次数

如何分配内存并将其(通过指针参数)返回给调用函数?

我在一些不同的函数中有一些代码看起来像这样:

void someFunction (int *data) {
  data = (int *) malloc (sizeof (data));
}

void useData (int *data) {
  printf ("%p", data);
}

int main () {
  int *data = NULL;

  someFunction (data);

  useData (data);

  return 0;
}
Run Code Online (Sandbox Code Playgroud)

someFunction ()useData ()在单独的模块(*.c文件)中定义.

问题是,虽然malloc工作正常,并且分配的内存可用someFunction,但一旦函数返回,相同的内存就不可用.

这里可以看到程序的示例运行,输出显示各种存储器地址.

有人可以向我解释我在这里做错了什么,以及如何让这段代码工作?


编辑:所以似乎我需要使用双指针来做这个 - 当我真的需要使用双指针时,我将如何做同样的事情?所以例如数据就是

int **data = NULL; //used for 2D array
Run Code Online (Sandbox Code Playgroud)

那么我是否需要在函数调用中使用三指针?

c malloc pointers

32
推荐指数
3
解决办法
4万
查看次数

31
推荐指数
4
解决办法
6万
查看次数

指针和参考文献之间的真正区别是什么?

AKA - 对指针的这种迷恋是什么?

只使用了ActionScript,Java和C#这样的现代面向对象语言,我并不真正理解指针的重要性以及它们的用途.我在这里错过了什么?

c pointers reference

29
推荐指数
6
解决办法
5982
查看次数

指向指针的指针

可能重复:
用于多级指针解引用?

我正在阅读另一篇文章,这让我想到了这个问题.这会是什么意思?还有人用一个指向指向指针的指针的指针有多深......我理解Pointer to Pointer但是为什么你会在那之后更多地去?你有多深入使用****?

Foo(SomePtr***你好);

c++ pointers

4
推荐指数
2
解决办法
1万
查看次数

哪些情况有用?

可能重复:
用于多级指针解引用?

我在这里看到了关于**(指针指针)的问题.我想知道这是什么意思?我应该什么时候使用它?

c c++ reference

0
推荐指数
2
解决办法
251
查看次数

如何遍历指向指针的指针?

假设我有以下变量:

char c[] = "ABC";
char *ptr = &c;
char **ptr2 = &ptr;
Run Code Online (Sandbox Code Playgroud)

我知道我可以通过这种方式迭代指向字符数组的指针:

int i;
for(i=0; i<3; i++){
    printf("TEST******************, %c\n", ptr[i]);
}
Run Code Online (Sandbox Code Playgroud)

如何遍历指向指针的指针?

c string pointers char

0
推荐指数
1
解决办法
7648
查看次数

**在C++中意味着什么?

例如:

bool insertInFront( IntElement **head, int data ){
    IntElement *newElem = new IntElement;
    if ( !newElem ) return false;

    newElen->data = data;
    *head = newElem; // Correctly updates head
    return true;
}
Run Code Online (Sandbox Code Playgroud)

我是C++的新手,来自Java.我得到了*for indirection语法,但未**在此页面上列出:http://en.wikipedia.org/wiki/Operators_in_C_and_C++#Member_and_pointer_operators

我在编程访谈暴露的第28页找到了这个例子

更新

我意识到这个问题是天真的,我可能通过其他方式找到了答案.显然,我是这门语言的新手.仍然,问"什么**意思?" 对于不知道**是指针操作的人来说,在线支持不是很好.搜索C ** syntax或搜索时,很少有相关结果C++ ** meaning.此外,使用上面的wiki页面和其他文档ctrl + f进行搜索**,根本不会返回任何匹配项.

我只是想从初学者的角度澄清这个问题很难与重复的问题区分开来.当然,答案是一样的:-)谢谢你的帮助.

c++

0
推荐指数
1
解决办法
498
查看次数

"a = new arr***[num];"是什么意思?

指针"***"是否可能放在arr和[]之间?什么意味着这条线?

c++ arrays pointers

-10
推荐指数
1
解决办法
103
查看次数

标签 统计

pointers ×7

c ×6

c++ ×5

reference ×2

syntax ×2

arrays ×1

char ×1

function ×1

malloc ×1

operators ×1

parameters ×1

string ×1