int* res = malloc(sizeof(int) * 501)是否等于res=(int*)malloc(sizeof(int*)*501)
时间: 2023-11-19 19:06:35 浏览: 173
malloc工作方式
不完全相等。
第一个表达式 `int* res = malloc(sizeof(int) * 501)` 意思是,为 `res` 分配了一个大小为 501 个整型数字的内存空间,并将其首地址赋值给了 `res`。
第二个表达式 `res=(int*)malloc(sizeof(int*)*501)` 意思是,为 `res` 分配了一个大小为 501 个指向整型数字的指针的内存空间,并将其首地址赋值给了 `res`。
因此,这两个表达式虽然都使用了 `malloc` 函数进行内存分配,但分配的内存空间的类型不同,因此不完全相等。正确的表达式应该是 `res=(int*)malloc(sizeof(int)*501)`。
阅读全文