M
masime
У меня в рваном массиве способ хранения кол-ва элементов - терминальный символ в конце строки. Записать я его записал, но как его мне прочитать? Помогите, пожалйста. Вот код:
[codebox]//Создание массива
double** ConstructAr()
{
double** p = NULL;
int N, M;
//poluchaem lo-vo strok
do
{
randomize();
N = random(10);
}while (N < 1 || N > 10);
printf("N = %d", N);
//videlyaem pamyat'
p = (double**)malloc( sizeof(double*)*N + sizeof(int));
//zapominaem v -1 kol-vo strok
((int*)p)[0] = N;
//sdvigaem ukasatel'
((int*)p)++;
//organizuem postrochnyi vvod
for (int i=0; i<N; i++)
{
//opredelyaem kol-vo simvolov v stroke
do
{
randomize();
M = random(10);
}while(M < 1 || M > 10);
printf("M = %d", M);
//videlyaem pamyat'
p = (double*)malloc((M+1)*sizeof(double) + sizeof(int));
((int*)(p))[M+1] = M;
//vvodim elti s klavy
for (int j=0; j<M; j++)
{
double m;
do
{
printf("\nEnter A[%d][%d](1<=A[%d][%d]<=10): ", i,j,i,j);
scanf("%lf", &m);
}while(m<1 || m>10);
p[j]=m;
}
}
return p;
}
//вывод массива на экран
void PrintArray(double **p)
{
int N,M;
N = ((int*)p)[-1];
for(int i=0; i<N; i++)
{
M = //вот здесь как его мне получить?
for(int j=0; j<M; j++)
printf("%-6.2lf", p[j]);
printf("\n");
}
}[/codebox]
[codebox]//Создание массива
double** ConstructAr()
{
double** p = NULL;
int N, M;
//poluchaem lo-vo strok
do
{
randomize();
N = random(10);
}while (N < 1 || N > 10);
printf("N = %d", N);
//videlyaem pamyat'
p = (double**)malloc( sizeof(double*)*N + sizeof(int));
//zapominaem v -1 kol-vo strok
((int*)p)[0] = N;
//sdvigaem ukasatel'
((int*)p)++;
//organizuem postrochnyi vvod
for (int i=0; i<N; i++)
{
//opredelyaem kol-vo simvolov v stroke
do
{
randomize();
M = random(10);
}while(M < 1 || M > 10);
printf("M = %d", M);
//videlyaem pamyat'
p = (double*)malloc((M+1)*sizeof(double) + sizeof(int));
((int*)(p))[M+1] = M;
//vvodim elti s klavy
for (int j=0; j<M; j++)
{
double m;
do
{
printf("\nEnter A[%d][%d](1<=A[%d][%d]<=10): ", i,j,i,j);
scanf("%lf", &m);
}while(m<1 || m>10);
p[j]=m;
}
}
return p;
}
//вывод массива на экран
void PrintArray(double **p)
{
int N,M;
N = ((int*)p)[-1];
for(int i=0; i<N; i++)
{
M = //вот здесь как его мне получить?
for(int j=0; j<M; j++)
printf("%-6.2lf", p[j]);
printf("\n");
}
}[/codebox]