Ошибка assignment makes pointer from integer without a cast [enabled by default] - C (СИ)

Узнай цену своей работы

Формулировка задачи:

выделяю память в Main - всё работает. Пытаюсь сделать функцию - куча ошибок.
Листинг программы
  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. #define n 5
  4. void create(int ***A);
  5. void destroy(int **A);
  6. void prt(int **A);
  7. int main()
  8. {
  9. int **A,i,j;
  10. create(&A);
  11. prt(A);
  12. destroy(A);
  13. return(0);
  14. }
  15. void prt(int **A)
  16. {
  17. int i,j;
  18. for(i=0;i<n;i++)
  19. for(j=0;j<n;j++)
  20. printf("A[%d][%d] = %d\n",i,j,A[i][j]);
  21. }
  22. void destroy(int **A)
  23. {
  24. int i,j;
  25. for(i=0;i<n;i++)
  26. free(A[i]);
  27. free(A);
  28. }
  29. void create(int ***A)
  30. {
  31. int i,j;
  32. (*A) = (int**)malloc(n*sizeof(int*));
  33. for(i=0;i<n;i++)
  34. (*A[i]) = (int*)malloc(n*sizeof(int));
  35. for(i=0;i<n;i++)
  36. for(j=0;j<n;j++)
  37. A[i][j] = rand()%100;
  38. }

Решение задачи: «Ошибка assignment makes pointer from integer without a cast [enabled by default]»

textual
Листинг программы
  1. A[i][j] = rand()%100;//Присваивание целочисленного значения указателю. У Вас A объявлена как int ***

Объяснение кода листинга программы

  1. Объявление переменных:
    • i, j (указатели на строки массива A)
    • A (указатель на массив строк)
  2. В каждой строке массива A выделить память под новую строку с помощью оператора new
  3. В каждой новой строке выделить память под новый массив с помощью оператора new
  4. Для каждого элемента нового массива (A[i][j]) присвоить случайное значение от 0 до 99 с помощью функции rand()
  5. Ошибка assignment makes pointer from integer without a cast [enabled by default] возникает из-за того, что вы пытаетесь присвоить целочисленное значение указателю, не приведя его к типу указателя. В вашем случае, переменная i и j являются указателями, а вы пытаетесь присвоить им целочисленное значение без явного приведения типов.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 3.889 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут