gpt4 book ai didi

c - Malloc 不在函数中工作

转载 作者:行者123 更新时间:2023-11-30 19:20:31 25 4
gpt4 key购买 nike

malloc 未分配函数中请求的内存。我尝试搜索另一个与 malloc 相关的问题/谷歌,我认为我写的应该起作用。编辑:~~~~是填充代码,实际上不应该与问题相关=d

    #include <stdio.h>
#include <stdlib.h>
#include <windows.h>

typedef struct {

int x;
int y;

} Coordenada;

int calculaCaminho(~~~~~Coordenada **posicoes) {
int tam = 5;
~~~~

*posicoes = (Coordenada*)malloc(tam*sizeof(Coordenada));

//I can't access posicoes[k]->y or posicoes[k]->x for whatever value of k that was in the
//range of tam
~~~~


return(~~~~);

}
main() {
~~~~
Coordenada *posicoes;
npassos = calculaCaminho(~~~~, &posicoes);
~~~~
}

有什么想法吗?

最佳答案

*posicoes = (Coordenada*)malloc(tam*sizeof(Coordenada));

之后,您可以访问 (*posicoes)[k].x,但不能访问 posicoes[k]->x。如果您暂时使用临时指针,您会立即注意到它:

Coordenada * ptr = (Coordenada*) malloc(tam*sizeof(Coordenada));

*posicoes = ptr;
ptr[k].x = 1; // ok
(*posicoes)[k].y = 2; // ok, same as ptr[k].y = 2;

// posicoes[k]->x = 0; // NOT ok

关于c - Malloc 不在函数中工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22126220/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com