相关疑难解决方法(0)

为什么数组参数的大小与main中的大小不同?

为什么作为参数发送的数组的大小与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)

c arrays function sizeof

101
推荐指数
7
解决办法
7万
查看次数

难以分配额外的内存吗?

我有一个指向最初由 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)

c malloc memory-management

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

标签 统计

c ×2

arrays ×1

function ×1

malloc ×1

memory-management ×1

sizeof ×1