I have the following code that produces a warning stating "warning: initialization makes pointer from integer without a cast".
If I change the datatype *eleNum to char then it compiles cleanly. What am I doing wrong to cause the compilation to complain about *eleNum being an integer?
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct ptElements {
int *eleNum;
char *eleSym;
char *eleNme;
char *elePrd;
char *eleGrp;
} Elements;
Elements database[] = {
{ 1, "H", "Hydrogen", "1", "1" },
{ 2, "He", "Helium", "1", "18" },
{ 3, "Li", "Lithium", "2", "1" },
{ 4, "Be", "Berylium", "2", "2" },
{ 5, "B", "Boron", "2", "13" }
};
int main() {
int i;
int limit;
limit = sizeof(database) / sizeof(Elements);
for (i = 0; i < limit; i++)
printf("%3s - %-3s %-20s %2s %2s\n", database[i].eleNum, database[i].eleSym, database[i].eleNme, database[i].elePrd, database[i].eleGrp);
return 0;
}
struct-point-02.c:14:7: warning: initialization makes pointer from integer without a cast [-Wint-conversion]
{ 1, "H", "Hydrogen", "1", "1" },
^
struct-point-02.c:14:7: note: (near initialization for ‘database[0].eleNum’)
struct-point-02.c:15:7: warning: initialization makes pointer from integer without a cast [-Wint-conversion]
{ 2, "He", "Helium", "1", "18" },
^
struct-point-02.c:15:7: note: (near initialization for ‘database[1].eleNum’)
struct-point-02.c:16:7: warning: initialization makes pointer from integer without a cast [-Wint-conversion]
{ 3, "Li", "Lithium", "2", "1" },
^
struct-point-02.c:16:7: note: (near initialization for ‘database[2].eleNum’)
struct-point-02.c:17:7: warning: initialization makes pointer from integer without a cast [-Wint-conversion]
{ 4, "Be", "Berylium", "2", "2" },
^
struct-point-02.c:17:7: note: (near initialization for ‘database[3].eleNum’)
struct-point-02.c:18:7: warning: initialization makes pointer from integer without a cast [-Wint-conversion]
{ 5, "B", "Boron", "2", "13" }
^
struct-point-02.c:18:7: note: (near initialization for ‘database[4].eleNum’)
int eleNum, it's an integer, not a pointer!