Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
25 / 25 / 19
Регистрация: 13.07.2015
Сообщений: 433
1

Функция sizeof() всегда должна присваиваться какой либо переменной?

28.08.2015, 23:26. Показов 725. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Если на 32 строке убрать int i т.е. написать просто sizeof(s); то программа зависнит.
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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
#pragma hdstop
#include <stdio.h>
#include <conio.h>
#define eof 120
#define max 1000
#include <stdlib.h>
#include <alloc.h>
#include <string.h>
 
getline(char s[], int lim)
{
int i,c;
for(i=0;(c=getchar())!=eof && i<lim && c!='\n';i++)
        s[i]=c;
s[i]='\0';
i++;
return(i);
}
 
void strcopy2(char *s,char *t)
{
while ((*s=*t)!='\0')
 {
        s++;
        t++;
 }
}
 
char  *strsave(char *s)
{
char *p;
int i=sizeof(s);  //Тут если убрать int i т.е написать просто sizeof(s); то программа зависнит.
*p=*s;
strcopy2(p,s);
return(p);
}
 
int main()
{
char s[max],t[max];
getline(t,max);
strcopy2(&s[0],&t[0]);
printf("iput.t=%s\noutput.s=%s\n",t,s);
 
getline(s,max);
char *p=strsave(&s[0]);
printf("Save string=%s",p);
getch();
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.08.2015, 23:26
Ответы с готовыми решениями:

Не хочет присваиваться значение переменной
Коллеги, доброго времени суток... Перехожу с VBA на C#, поэтому вопросы от меня будут иногда...

Как выводить в pictureBox определенную фотографию в зависимости от значения какой-либо переменной
Есть переменная value, в зависимости от того какое значение она принимает в pictureBox нужно...

Взять какой-либо отдельный символ из строки и присвоить его другой переменной
потратил много времени , но так и не понял.... мне нужно из строки взять букву , например s- это...

Условие в SQL запросе. Сумма двух текстовых полей должна быть равна какой-то строковой переменной
Как сделать условие в SQL запросе, чтобы сумма двух полей была равна какой-то строковой переменной....

5
1375 / 519 / 72
Регистрация: 21.07.2015
Сообщений: 1,304
28.08.2015, 23:30 2
Цитата Сообщение от Aqua77 Посмотреть сообщение
char *p;
int i=sizeof(s); //Тут если убрать int i т.е написать просто sizeof(s); то программа зависнит.
*p=*s;
У тебя попытка записи по неинициализированному указателю (рандомному адресу) отсюда и проблемы. sizeof тут не при чем.
ЗЫ: код на предмет других ошибок не проверял.
0
25 / 25 / 19
Регистрация: 13.07.2015
Сообщений: 433
28.08.2015, 23:33  [ТС] 3
Цитата Сообщение от shmkv Посмотреть сообщение
У тебя попытка записи по неинициализированному указателю
Указатель *s надо инициализировать? потом присвоить *р ?
0
1375 / 519 / 72
Регистрация: 21.07.2015
Сообщений: 1,304
28.08.2015, 23:34 4
Надо подумать головой (осознать) что ты делаешь.
0
25 / 25 / 19
Регистрация: 13.07.2015
Сообщений: 433
28.08.2015, 23:39  [ТС] 5
Я ввожу строку в массив s, потом передаю его первый адрес s[0] в функцию strsave(). Там заношу её указателю *p. После копирую s в р через функцию strcopy2(p,s);
0
Эксперт PHP
3106 / 2591 / 1219
Регистрация: 14.05.2014
Сообщений: 7,236
Записей в блоге: 1
28.08.2015, 23:43 6
Aqua77,
C++
1
char *p = new char[strlen(s) + 1];
а в мэйне эту память после использования нужно освободить.
0
28.08.2015, 23:43
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.08.2015, 23:43
Помогаю со студенческими работами здесь

Объяснить почему sizeof(arr) всегда возвращает одно и то же значение
Начал изучать динамические массивы. Какое бы n я ни вводил, всегда создается массив из 4 элементов....

Переменной K присвоить либо номер первого вхождения Y в массив Х, либо число N+1
Переменной K присвоить либо номер первого вхождения Y в массив Х, либо число N+1, если Y не входит...

Функция аналогичная sizeof
Вот сижу ломаю голову...)) Задали написать функцию аналогичню sizeof... Вобще нивкакую не идет......

Какой аналог С-шного оператора sizeof (SOME_DATA_TYPE) в VB ?
Какой аналог С-шного оператора sizeof (SOME_DATA_TYPE) в VB ? (требуется получить размер типа...

Является ли оператор sizeof синтаксическим сахаром над System.Runtime.InteropServices.Marshal.SizeOf?
Является ли оператор sizeof синтаксическим сахаром над...

Sizeof(.) или constexpr size_t tmp = sizeof(.)
sizeof(...) или constexpr size_t tmp = sizeof(...) Как лучше с точки зрения производительности?...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru