为什么作为参数发送的数组的大小与main中的相同?
#include <stdio.h>
void PrintSize(int p_someArray[10]);
int main () {
int myArray[10];
printf("%d\n", sizeof(myArray)); /* As expected, 40 */
PrintSize(myArray);/* Prints 4, not 40 */
}
void PrintSize(int p_someArray[10]){
printf("%d\n", sizeof(p_someArray));
}
Run Code Online (Sandbox Code Playgroud) 我有一个指向最初由 malloc 分配的结构的指针“数组”,当初始容量已满时,我需要通过增量添加额外的内存。当我尝试分配更多内存时,第一个元素似乎消失并导致我的程序崩溃。有人可以帮忙吗?
#include "a2.h"
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int idCompare ( const void * a, const void * b ){
message *m1 = *(message **)a;
message *m2 = *(message **)b;
return m1->messageId - m2->messageId;
}
int textCompare( const void *a, const void *b ) {
message *m1 = *(message **)a;
message *m2 = *(message **)b;
return strcmp(m1->messageText, m2->messageText);
}
int main(void)
{
int id, i;
int count = 0;
char cmd[MAX_CMD_LEN];
char msg_text[MAX_TEXT_LEN];
message **mList = malloc(INITIAL_CAPACITY …
Run Code Online (Sandbox Code Playgroud)