Assignment from incompatible pointer type - C (СИ) (69493)
Формулировка задачи:
В переменной "a" хочу хранить ссылки на адреса памяти значений val. Но выдает ошибки.
ошибка
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <time.h> typedef struct _Key { char key; int *a; } Key; typedef struct _Val { char val[81]; } Val; int main(void) { const int N = 50; int i, cnt, action; char ch; Key keys[N]; Val values[N]; Key key; FILE *file = fopen("input2.txt", "r"); if (file == NULL) { printf("Ошибка при открытии файла\n"); return 0; } i = 0; while (i < N && fscanf(file, "%s", &keys[i].key) == 1) { fscanf(file, "%c", &ch); getRow(file, values[i].val, sizeof(values[i].val)); keys[i].a=&values[i].val; i++; } fclose(file); cnt = i; }
warning: assignment from incompatible pointer type [enabled by default] keys[i].a=&(values[i].val); ^
Решение задачи: «Assignment from incompatible pointer type»
textual
Листинг программы
keys[i].a=values[i].val;
Объяснение кода листинга программы
В данном коде происходит присваивание значения переменной val
из массива values
переменной a
из массива keys
. Номер элемента массива i
инициализируется нулем.
Код можно оформить в виде списка следующим образом:
- Тип данных: указатель на структуру
- Переменная: keys
- Переменная: values
- Переменная: i
- Переменная: a
- Присваивание: keys[i].a = values[i].val
- Условие: i < num_elements
- Увеличение: i++
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д