各路大牛晚上好!小弟初次在Linux系統(tǒng)下嘗試進(jìn)行C語音編程,不太順利!調(diào)用一個printf函數(shù),就觸發(fā)了斷言!已經(jīng)3個晚上了,分別在ChinaUnix和CSDN求助,都沒能解決!請大牛幫忙走查一下代碼,幫忙看下為什么會觸發(fā)斷言呢?又應(yīng)當(dāng)如何修改呢?先謝謝了!代碼如下:#include <stdio.h>#include <stdlib.h>#include <string.h>#include "init_array.h"int variable_length_array(int **parray, int length){??? if (*parray != NULL)??? {??????? fprintf(stderr, "The array not initiated!\n");??????? return FAIL;??? }??? if (length <=0)??? {??????? fprintf(stderr, "The length error!\n");??????? return FAIL;??? }??? *parray = (int *)malloc(length);??? memset(*parray, 0x00, sizeof(int) * length);??? return SUCC;}int main(int argv, char *argc[]){??? int *array = NULL;??? int length = 0;??? scanf("%d", &length);??? if (variable_length_array(&array, length) == SUCC)??? {??????? for (int i = 0; i < length; i++)??????? {??????????? printf("The index: %d, the content: %d, the address: %p.\n", i, array[i], array + i); // 斷言所在行!??????? }??? }??? else??? {??????? fprintf(stderr, "Initiate array fail!\n");??????? return 1;??? }??? return 0;}斷言信息如下:init_array.out: malloc.c:2427: sysmalloc: Assertion `(old_top == initial_top (av) && old_size == 0) || ((unsigned long) (old_size) >= MINSIZE && prev_inuse (old_top) && ((unsigned long) old_end & (pagesize - 1)) == 0)' failed.Aborted
添加回答
舉報
0/150
提交
取消