首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >int*值不包含任何值

int*值不包含任何值
EN

Stack Overflow用户
提问于 2021-01-09 12:45:27
回答 1查看 42关注 0票数 0

我正在尝试传递和存储许多整型的值,但是,我需要的值没有保存适当的值

问题代码如下,没有包含应该为的值的值是: int a、int b、int c、int d、int e、int a1、int b1、int c1、int d1、int e1、int a1lock、int b1lock、int c1lock、int d1lock、int e1lock

代码语言:javascript
运行
复制
void stringVowelBreakdown(char xString[30], char yString[30], int length, int* a, int* b, int* c, int* d, int* e, int* a1, int* b1, int* c1, int* d1, int* e1, int* a1lock, int* b1lock, int* c1lock, int* d1lock, int* e1lock)
{
    int i = 0;
    int ptr = 0;

    while (i <= length)
    {
        char seperateChar = xString[i];

        switch (seperateChar)
        {
        case 65://A
            yString[ptr] = seperateChar;
            ptr++;
            a++;
            if (a1 == 0 && a1lock == 0)
            {
                *a1 = i;
                *a1lock = 1;
            }
            break;
        case 97://a
            yString[ptr] = seperateChar;
            ptr++;
            a++;
            if (a1 == 0 && a1lock == 0)
            {
                *a1 = i;
                *a1lock = 1;
            }
            break;
        default:
            break;
        }
        i++;
    }
}

如果你需要的话,这里是主要的:

代码语言:javascript
运行
复制
int main()
{
    char stringOne[30] = "\0";
    char stringTwo[30] = "\0";
    int stringOneLength = 0;

    int acount = 0;

    int aFirstIndex = 0;

    int alock = 0;
    int elock = 0;
    int ilock = 0;
    int olock = 0;
    int ulock = 0;

    enterString(&stringOne[0]);

    stringOneLength = (stringLengthFinder(&stringOne[0], stringOneLength));

    stringVowelBreakdown(&stringOne[0], &stringTwo[0], stringOneLength, &acount, &aFirstIndex, &alock);

    return 0;
}

该程序应输出以下内容:

输入不超过30个字符的单词/句子-第30个字符之后的任何字符都将丢失产生xString的长度为5原始字符串是:产生第二个字符串是: ie 'A‘出现0次'E’出现1次'I‘出现1次'O’出现0次'U‘出现0次'A’没有出现'E‘第一次出现在索引3 'I’第一次出现在索引1 'O‘没有出现'U’

但是,它只输出以下内容:

输入不超过30个字符的单词/句子-第30个字符之后的任何字符都将丢失产生xString的长度为5原始字符串是:产生第二个字符串是: ie 'A‘出现0次'E’出现0次'I‘出现0次'O’出现0次'U‘出现0次'A’不出现'E‘不出现'I’不出现'U‘不出现

任何人和所有的帮助将不胜感激-如果你需要我的任何其他东西,请在下面评论

编辑:删除部分代码,因为它们是'A‘和'a’段的重复

EN

回答 1

Stack Overflow用户

发布于 2021-01-09 23:20:01

你没有区分指针变量和它所指向的值。这是两个独立的实体。

让我们来看看a变量。它被定义为int *a,所以它是一个指针。这意味着a++会递增指针,从而改变指针所指向的内容。要递增指向(*a)++的值,需要使用该值。这将递增a所指向的整数。

同样,在int *a1的情况下也是这样(缩写):

代码语言:javascript
运行
复制
if (a1 == 0) {
     *a1 = i
}

这没有任何意义,因为这表示如果a1不指向任何地方,则将其值设置为i。这肯定会让你的程序崩溃。

你真正想要的(我猜)是:

代码语言:javascript
运行
复制
if ( *a1 == 0) {
    *a1 = i;
}

它设置a1所指向的整数的值,以防它恰好为零。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65639422

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档