标签: sizeof

如何找到字符数组的大小?

我应该如何在 C++ 中查找字符数组的长度?我已经尝试了两种方法,但它们都导致数组中的字符数错误。到目前为止,我已经使用了strlensizeof运营商,但无济于事。

void countOccurences(char *str, string word)
{
    char *p;
    string t = "true";
    string f = "false";

    vector<string> a;

    p = strtok(str, " ");
    while (p != NULL)
    {
        a.push_back(p);
        p = strtok(NULL, " ");
    }

    int c = 0;
    for (int i = 0; i < a.size(); i++)
    {
        if (word == a[i])
        {
            c++;
        }
    }

    int length = sizeof(str); //This is where I'm having the problem
    string result;
    cout << length …
Run Code Online (Sandbox Code Playgroud)

c++ arrays sizeof char

-1
推荐指数
1
解决办法
132
查看次数

sizeof(函数指针) vs sizeof(函数名)

在此输入图像描述

以下是程序的文本:

#include <stdio.h>

int f(int x){
    return x+1;
}

int main() {
    int (*p)(int) = f;

    printf( "%d\n", sizeof(p) );
    printf( "%d\n", sizeof(f) );
}
Run Code Online (Sandbox Code Playgroud)

该图像与 C 代码相关,我的问题仅针对 C。

f是函数的名称,并且p是指向该函数的指针f

由于p最终是一个地址,因此根据地址总线的大小,输出结果sizeof(p)为真,这完全没问题。

这里f也是指向函数f。所以最终f也是一个地址。

我的主要问题是为什么 的输出sizeof(f)不是8,为什么是1以及如何是1?

c function-pointers function sizeof implicit-conversion

-1
推荐指数
1
解决办法
98
查看次数

如何在C中不使用sizeof来查找指针的大小

可能重复:
如何使用sizeof查找变量的大小

使用C,我们可以在不使用sizeof运算符的情况下以某种方式找到指针的大小吗?虽然我在google搜索时在很多地方发现了这个问题,但我找不到任何答案.任何帮助将不胜感激.谢谢

c sizeof

-2
推荐指数
1
解决办法
5182
查看次数

传递给函数的char*缩短为四个字符

void myfunc(char* passedArray)
{
    cout << sizeof(passedArray) << endl; // prints 4
}

int main(void)
{
    char charArray[] = "abcdefghiklmop";

    cout << sizeof(charArray) << endl; // prints 15
    myfunc(charArray);
    cout << sizeof(charArray) << endl; // prints 15
}
Run Code Online (Sandbox Code Playgroud)

我相信它应该仍然在该函数内打印15 ...

c++ arrays sizeof parameter-passing

-2
推荐指数
1
解决办法
231
查看次数

strlen()和sizeof()之间的奇怪区别

我试图测试的差异sizeofstrlen,但我发现了一些奇怪的今天.代码如下.

#include <iostream>
#include <string.h>
using namespace std;

int main()
{
        char a[]={"I am a boy"};
        char b[]={'I',' ','a','m',' ','a',' ','b','o','y'};
        cout << "sizeof(a) = " << sizeof(a) << endl << "sizeof(b) = " << sizeof(b) <<endl;
        cout << "strlen(a) = "<< strlen(a) << endl << "strlen(b) = " << strlen(b) << endl;
        return 0;

}
Run Code Online (Sandbox Code Playgroud)

结果如下:

sizeof(a) = 11
sizeof(b) = 10
strlen(a) = 10
strlen(b) = 11
Run Code Online (Sandbox Code Playgroud)

我知道结果的前三行,但我不明白为什么strlen(b)是11.有人可以帮我吗?

c++ sizeof strlen

-2
推荐指数
1
解决办法
3468
查看次数

C中结构大小的解释?

所以我在看这段代码:

#include <stdio.h>

struct Student {
    int id;
    char name[32];
} s, *sp;

int main() {
    printf("sizeof(structStudent) = %u\n", sizeof(structStudent));
    printf("sizeof(s) = %u\n", sizeof(s));
    printf("sizeof(structStudent*) = %u\n", sizeof(structStudent*));
    printf("sizeof(sp) = %u\n", sizeof(sp));
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

输出如下:

sizeof(struct Student) = 36
sizeof(s) = 36
sizeof(struct Student*) = 4
sizeof(sp) = 4
Run Code Online (Sandbox Code Playgroud)

为什么尺寸为struct Student*4,为什么尺寸sp也是4?我的powerpoint没有详细说明这一点.我知道为什么的大小struct Students为36:因为32个char(对于一个字节+4字节int)= 36总.

c struct sizeof

-2
推荐指数
1
解决办法
86
查看次数

应用于函数类型时,解释sizeof运算符的输出

以下代码的输出是:

Hello World4

怎么样?

#include "stdio.h"  

int func()  
{
    return(printf("Hello world"));
}

int main()  
{
    printf("%d",sizeof(fun));
    return 0;  
}
Run Code Online (Sandbox Code Playgroud)

如需更多参考,请查看图片 在此输入图像描述

PS: - 据我说,sizeof()调用func()函数,其中返回statemnt调用printf函数打印hello world nd返回字符串的长度为11返回函数然后sizeof()函数返回11的大小是int和int的值取决于编译器2或4

c printf function sizeof

-2
推荐指数
1
解决办法
241
查看次数

C++简单的malloc和sizeof

我用这两条简单的线条得到了一个奇怪的结果

char* reverse = (char*) malloc(sizeof(char)*19);
cout << sizeof(reverse)/sizeof(char) << endl;
Run Code Online (Sandbox Code Playgroud)

无论我放在第一行的数字(在这个例子中,它是19).我总是得到4作为输出.怎么了 ?谢谢.

c++ malloc sizeof

-2
推荐指数
1
解决办法
399
查看次数

计划的产出

#include<stdio.h>

int main() {
 short int i=20;
char c=97;
printf("%d,%d,%d",sizeof(i),sizeof(c),sizeof(c+i));
return 0;
}
Run Code Online (Sandbox Code Playgroud)

假设给定short int = 2的大小,char为1而int为4B Well如果我在机器上运行则给出2,1,4但是ans是2,1,2

c sizeof integer-promotion

-2
推荐指数
1
解决办法
48
查看次数

为什么sizeof()在输入为(char)和'A'时返回不同的值

我正在努力 sizeof()

当我输入参数为char数据类型时

J=sizeof(char);
Run Code Online (Sandbox Code Playgroud)

它输出为1.

但是当我进入这样的论点时

J=sizeof('A');
Run Code Online (Sandbox Code Playgroud)

我输出为4.

由于它的参数是char数据类型,它应该返回1作为输出,为什么它返回4/2(取决于32位/ 64位设备).

c character sizeof

-2
推荐指数
2
解决办法
147
查看次数