相关疑难解决方法(0)

'c'问题中的动态内存分配

我正在使用malloc编写代码然后遇到问题所以我写了一个测试代码,它实际上总结了下面的整个混乱::

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

int main()     
{
     int *p = NULL;
     void *t = NULL;
     unsigned short *d = NULL;

     t = malloc(2);
     if(t == NULL) perror("\n ERROR:");
     printf("\nSHORT:%d\n",sizeof(short));
     d =t;
     (*d) = 65536;
     p = t; 
     *p = 65536;
     printf("\nP:%p: D:%p:\n",p,d);
     printf("\nVAL_P:%d ## VAL_D:%d\n",(*p),(*d));
     return 0;
  }
   Output:: abhi@ubuntu:~/Desktop/ad/A1/CC$ ./test

            SHORT:2
            P:0x9512008: D:0x9512008:
            VAL_P:65536 ## VAL_D:0
Run Code Online (Sandbox Code Playgroud)

我使用malloc 分配2个字节的内存.返回void*指针的 Malloc 存储在void*指针't'中.

然后在那之后指出2个指针p - 整数类型和d - 短类型.然后我将t分配给它们*(p = …

c malloc dynamic-memory-allocation

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

标签 统计

c ×1

dynamic-memory-allocation ×1

malloc ×1