Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
1 / 1 / 0
Регистрация: 15.09.2017
Сообщений: 19
1

Путаница с указателями

04.07.2018, 19:45. Показов 799. Ответов 1
Метки нет (Все метки)

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <stdio.h>
#include <stdlib.h>
#define LEN 100
 
void new_line(char (**line)[LEN], int n)
{
        *line = calloc(n * LEN, sizeof(char));
        
        for (int i = 0; i < n; i++)
                sprintf(*line[i], "test %d", i);
}
 
int main(void)
{
        char (*line)[LEN] = NULL;
        int n = 10;
        
        new_line(&line, n);
        
        for (int i = 0; i < n; i++)
                printf("%s\n", line[i]);        
 
    return 0;
}
Как правильно в функции new_line указатели прописать, чтобы не сегфолтилось? Компилятор никаких предупреждений не выдаёт.
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.07.2018, 19:45
Ответы с готовыми решениями:

Путаница с указателями
Люди, помогите, пожалуйста! Имеется двумерный динамический массив, объявленный и...

Путаница с функциями и указателями. Платина. Ansi c
Прошу прощения за очередную лишнюю тему, где школьник запутался в указателях и не может передать...

путаница с ОС
Совсем запутался весь. Помогите решить проблему. Значит стояла 7, решил установить себе еще XP, на...

Путаница с кодировками
Смотрите, хочу записать какой-то текст в файл на рабочий стол (ОС Windows 7, JDK8). Изначально...

1
С чаем беда...
Эксперт CЭксперт С++
8920 / 4474 / 1225
Регистрация: 18.10.2014
Сообщений: 9,917
04.07.2018, 20:10 2
Лучший ответ Сообщение было отмечено gesegagaf как решение

Решение

Цитата Сообщение от gesegagaf Посмотреть сообщение
C
1
sprintf(*line[i], "test %d", i);
Должно быть

C
1
sprintf((*line)[i], "test %d", i);
Все остальное правильно. Однако выделение памяти я бы записал как

C
1
*line = calloc(n, sizeof **line);
Цитата Сообщение от gesegagaf Посмотреть сообщение
Компилятор никаких предупреждений не выдаёт.
А он и не может тут ничего выдавать. С точки зрения типизации написано все правильно.
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.07.2018, 20:10

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Путаница с циклами
Я просто новичок и запутался в этих циклах. Мне нужно сделать программу для вычисления значений y...

Ассемблерная путаница
Начал изучать по книге ассемблер для авр и параллельно смотрю видео уроки. Так вот делаю обычную...

Путаница в массиве
setlocale(LC_ALL, &quot;Russian&quot;); const int B = 11; int A; int index(-1); int count; cout &lt;&lt;...

Путаница с путями
Доброе время суток! Помогите решить проблему с изменением пути Существует скрипт обработчика формы...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.