小编Ace*_*Ace的帖子

如果我在同一个指针(C)上使用malloc两次会怎么样?

比方说我创建了一个指针newPtr,我使用malloc(一些大小)然后我再次使用malloc(某个大小)使用相同的指针.怎么了?我在创建第二块内存与第一块相同吗?newPtr是否指向同一地址?

例:

int *newPtr;
newPtr = malloc(10 * sizeof(int));
newPtr = malloc(10 * sizeof(int));
Run Code Online (Sandbox Code Playgroud)

c memory malloc pointers

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

写一个函数到malloc双指针

我需要编写一个使用malloc创建双指针的函数.

这就是我通常所说的双指针的方式:

double **G; //Create double pointer to hold 2d matrix

*G = malloc(numNodes * sizeof(double*));
for(i = 0; i < numNodes; i++)
{
    G[i] = malloc(numNodes*sizeof(double));
    for (j = 0; j < numNodes; j++)
    {
        G[i][j] = 0;
    }
}
Run Code Online (Sandbox Code Playgroud)

现在我尝试用以下代替它:

double **G;
mallocDoubleArr(G, numNodes);
Run Code Online (Sandbox Code Playgroud)

功能是:

void mallocDoubleArr(double **arr, int size)
{
    int i, j;

    *arr = malloc(size * sizeof(double*));

    for(i = 0; i < size; i++)
    {
        arr[i]= malloc(size*sizeof(double));
        for (j = 0; j < size; j++)
        { …
Run Code Online (Sandbox Code Playgroud)

c malloc pointers

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

获取()不工作

我试图用来gets()从用户那里获取一个字符串,但程序似乎正在通过gets()。用户输入时没有停顿。为什么gets()什么都不做?

char name[13];
printf("Profile name: ");
gets(name);
printf("\n%s", name);
Run Code Online (Sandbox Code Playgroud)

c string gets

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

如何释放链表?

我在函数中创建了一个链表,在程序的其余部分我使用指针访问列表.现在,如何在程序结束时释放此链接列表?我是否明白使用free(CircuitData)或者是否必须通过列表释放每个节点?写这个我想解放每个节点是明显的答案......

另外,我还想问一下如何找出程序中分配的所有内存是否正确释放?

 ListNodeType *CircuitData;
 CircuitData = NULL;
 ReadFile(&CircuitData, &numEl, &numNodes);


void ReadFile(ListNodeType **CircuitData, int *numEl, int *numNodes){

    ListNodeType *newPtr, *tempPtr;
    newPtr = malloc(sizeof(ListNodeType));
    *CircuitData = newPtr;
    newPtr->nextPtr = NULL;

    //MORE CODE
Run Code Online (Sandbox Code Playgroud)

c malloc free linked-list

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

标签 统计

c ×4

malloc ×3

pointers ×2

free ×1

gets ×1

linked-list ×1

memory ×1

string ×1