Я не понимаю, почему назначение «корень» к равным «Trieu» был бы несовместим указатель:/Link список несовместим указатель типа
#include <stdio.h>
#include <stdlib.h>
struct uniform {
char size;
int number;
struct uniform *ext;
};
struct uniform *trieu;
struct unifrom *root;
int main(void) {
trieu = malloc(sizeof(struct uniform));
root = trieu;
...
trieu = root;
Когда я скомпилировать его с GCC это дает мне:
program.c: In function ‘main’:
program.c:15:7: warning: assignment from incompatible pointer type
root = trieu;
^
program.c:57:8: warning: assignment from incompatible pointer type
trieu = root;
Он работал раньше в другой программе я сделал с:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
struct ll {
char store;
struct ll *ext;
};
struct ll *trieu;
struct ll *root;
int main(int argc, char* argv[]) {
trieu = malloc(sizeof(struct ll));
root = trieu;
...
Они говорят, что [вы не должны отбрасывать результат 'таНос()' в C] (http://stackoverflow.com/questions/605845/do-i-cast-the-result-of- таНос). – MikeCAT
Истина, это необязательно, поскольку void * автоматически продвигается к любому другому типу указателя. –