MYSQL C Вызов функции API испортил mallo c ()? - PullRequest
0 голосов
/ 12 февраля 2020

поэтому у меня есть два фрагмента кода:

#include <stdio.h>
#include <stdlib.h>
#include <mysql.h>
typedef struct Node{
    int a;
    struct Node* x;
    struct Node* y;
}Node;
int main(){
MYSQL* wow = mysql_init(NULL);
Node* node = malloc(sizeof(Node));
printf("node is %p", node->x);
}

и второй здесь:

#include <stdio.h>
#include <stdlib.h>
#include <mysql.h>
typedef struct Node{
    int a;
    struct Node* x;
    struct Node* y;
}Node;
int main(){
Node* node = malloc(sizeof(Node));
printf("node is %p", node->x);
}

, и я компилирую их таким же образом:

gcc -Wall -g $(mysql_config --cflags) try.c $(mysql_config --libs) -o try

Первый выводит адрес памяти 0x7fb645ecaca0, второй выводит NULL. Я подозреваю причину этого root из вызова mysql_init (), но документы на inte rnet для этого topi c были довольно старыми. Буду признателен, если вы можете дать мне несколько советов.

...