Форум программистов, компьютерный форум, киберфорум
Наши страницы

Изменение динамической памяти, ошибка программы - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ И снова связанный список http://www.cyberforum.ru/cpp-beginners/thread1086329.html
Есть кусок связанного списка, только начал его делать, в тырнете много примеров как он реализован на структурах, в одних случаях структура вне класса, в других внутри класса, но задание дали...
C++ Ввод и вывод матрицы из файла с++, ошибка #include <vcl.h> #include <stdio.h> #include <conio.h> #include <time.h> #pragma hdrstop //--------------------------------------------------------------------------- #pragma argsused void... http://www.cyberforum.ru/cpp-beginners/thread1086320.html
C++ как обозначит целые части значений
Пожалуйста помогите! Функція F повинна приймати дійсне значення, якщо вираз (Ац ИЛИ Вц) И (Ац ИЛИ Сц) не равен нулю, и целое значение в противном случае. Через Ац, Вц, Сц обозначены целые части...
C++ Что значит (int)a
Пожалуйста помогите!Что значит ((int)a|(int)b) & ((int)a|(int)c)!=0
C++ Что не хватает выводу? http://www.cyberforum.ru/cpp-beginners/thread1086314.html
#include <iostream>//управляет вводом-выводом #include "Vjnkak.cpp" #include <stdio.h>//заголовочный файл стандартной библиотеки языка Си, содержащий определения макросов, константы и объявления...
C++ В чем разница между push_back и push? Подскажите пожалуйста, в чем состоит отличие Push_back и просто Push? Они оба насколько я знаю добавляют значение в конец, но например у вектора есть только Push_back, а у queue(очередь) и то и... подробнее

Показать сообщение отдельно
Vegas_I
1 / 1 / 0
Регистрация: 28.02.2013
Сообщений: 103

Изменение динамической памяти, ошибка программы - C++

31.01.2014, 16:38. Просмотров 293. Ответов 3
Метки (Все метки)

Есть строка, в ней слова, разделённые пробелами. Я хочу эти слова перенести в массив (чтобы потом с ними работа, ну это не суть сейчас). Массив получается двумерный, в каждой строчке по слову. Из введённой пользователем строки с помощью strtok беру по слову. Если есть слово, то в 2-й массив добавляю ещё одну строку и в неё копирую это слово. И так все слова. Но проблема с calloc: он возвращает неправильный указатель и программа вылетает. Где ошибка?
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
25
26
27
28
29
30
31
32
33
#include <iostream>
#include <string.h>
using namespace std;
void main()
{
    char str[50], *z;
    int k;
    unsigned int n, i;
 
 
    gets(str);
 
    n=1;
 
    char **mas;
    mas=(char**)calloc(n,sizeof(char*));
    
    z=strtok(str," ");
   
 
    while(z!=NULL)
    {
        mas=(char**)realloc(mas, n);
        mas[n-1]=(char*)calloc(15,sizeof(char));
        strcpy(&mas[n-1][0],z);
        n++;
        z=strtok(NULL," ");
    }
 
    for(i=0;i<n;i++)
        puts(&mas[i][0]);
 
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru