@HonestHacker

Почему не выводится матрица?

#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <stdio.h>
#include <conio.h>

	void readm(int N, int* X, FILE * dat)
	{
		fscanf(dat, "%d", &N);
		X = new int [N];
		for (int i = 0; i < N; i++)
		{
			fscanf(dat, "%d", &X[i]);
		}
	}

	void writem(int N, int* X, FILE * res)
	{
		for (int i = 0; i < N; i++)
		{
			fprintf(res, "%d ", X[i]);
		}
	}


int main(int argn, char* argc[])
{
	FILE* dat, * res;
	dat = fopen(argc[1], "r");
	res = fopen(argc[2], "w");
	int N = 0;
	int *X = nullptr;
	readm(N, X, dat);
	fprintf(res, "дон");
	writem(N, X, res);

	return 0;
}
  • Вопрос задан
  • 72 просмотра
Решения вопроса 1
jcmvbkbc
@jcmvbkbc
http://dilbert.com/strip/1998-08-24
void readm(int N, int* X, FILE * dat)
... 
  int *X = nullptr;
  readm(N, X, dat);
...
  writem(N, X, res);

Потому что ни N ни X внутри main не меняются, потому что их новое значения не возвращаются из функции readm.
Минимальное изменение с которым всё заработает:
void readm(int& N, int*& X, FILE * dat)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы