[напомнили]прогеры, напомните, пож., как память для матрицы выделять

tema8144

а то что-то я запутался в этих звёздочках

SCIF32

//пишу для С++
Если делать в виде "массива" указателей:

double **m;
m=new double*[N];
for (int i=0;i<N;i++)
m[i]=new double[M];

потом обращаешься:

for (int i=0;i<N;i++)
for (int j=0;j<N;j++)
m[i][j]=1;

Если --- в один массив, можно ничего не выделяя:

double m[N*M];

обращаться:

for (int i=0;i<N;i++)
for (int j=0;j<N;j++)
m[i*N+j]=1;

tema8144

круто, спасибо

Barbie29

я вот так выделяю, правда в сях:
m = malloc(w * sizeof(*m;
for (i=0; i<w; ++i) m[i] = malloc ( h * sizeof(**m;
...bla-bla-bla...
for (i=0; i<=h-1; i++){
free (m[i]);
}
free(m);

tema8144

я вот так и пытался выделить, ток традиционно объебывался в местоположениях звездочек
к тому же там, помойму перед маллоками чото в скобках надо писать
приведение к типу штоле?

alexkravchuk

к тому же там, помойму перед маллоками чото в скобках надо писать
приведение к типу штоле?
В C++ необходимо явное приведение типа, в просто C - не обязательно.

vall

а на NULL кто будет проверять?

okunek

а на нулл виндовс проверит когда писать или читать будешь

Barbie29

а нах на нулл то проверять? и я под linux только пишу...

ark21

segmentation fault. core dumped

Barbie29

не было такого...

bobby

а ежели памяти не хватит?

Barbie29

ну, такого для моей задачи не было.

enochka1145

Запутался в звёздочках? Есть решение...

maggi14

я всегда считал, что это решение - для тех, кто путается в звездочках

enochka1145

Не совсем так. Звёздочки не то, чтобы путают, они просто усложняют. Программировать-то можно и на машине Тьюринга.
Просто если приложение не слишком низкого (системного) уровня или не слишком ограничено в ресурсах, звёздочки и впрямь ни к чему.
"Java. Мы не торопимся."
Оставить комментарий
Имя или ник:
Комментарий: