2010-11-08 2 views
0

ребята, я пытаюсь скомпилировать мою программу в c, но я получаю эту ошибку (конфликтующие типы для allocArray)?конфликтующие типы для allocArray

Вот мой код:

#include <stdio.h> 
#include <stdlib.h> 
int number(int); 
char *allocArray(int); 

int main() 
{ 
     printf("Enter a number: "); 
     int userNumber; 
     scanf("%d", &userNumber); 
     int m= number(userNumber); 
     printf("\nThe number is %d", m); 
     printf("\n"); 

printf("*****************************************************\n"); 
     printf("The array is %s", alloArray(5)); 

} 

int number(int n) 
{ 

int num = n; 

return num; 
} 

char *alloArray(int num) 
{ 
     char *addr; 
     addr = (char *) malloc(num); 
     //addr = char[num]; 
     return addr; 
} 
+0

Могу ли я спросить, чего вы пытаетесь достичь? У вас есть избыточное количество избыточного кода, и вы не используете 'malloc()' правильно. –

+0

Я пытаюсь динамически выделять массив и возвращать указатель на него для второго метода. – Khalid

+0

@ Халид. Вы делаете это, но это действие само по себе бесполезно. Вы выделяете массив, но он не содержит ничего, поэтому вы распечатываете его, даже если он, вероятно, ничего не содержит (или, что еще хуже, мусора). Единственный указатель на этот массив затем теряется, поэтому вы не можете 'free()' ваш массив позже. Ваша функция 'allocArray()' не имеет никакой реальной цели - она ​​просто вызывает 'malloc()', и вы можете (и, IMHO) просто называть 'malloc()' на своем месте. Если вы не используете C++ (или компилятор C++), вам не нужно указывать возвращаемое значение 'malloc()', а 'malloc()' принимает параметр 'size_t', а не' int', который ... –

ответ

1

Вы орфографические ошибки allocArray в alloArray (дважды, на самом деле).

+0

Я знаю, что есть глупая ошибка! Я ненавижу, когда у меня такие ошибки. – Khalid

+0

Спасибо человеку за помощь :) – Khalid

Смежные вопросы