c - 这个程序有什么问题吗?

标签 c runtime

#include <stdio.h>
#include<string.h>
int main() {
    char * a;
    int b[26] = {
        0
    };
    long r = 0;
    scanf("%s", a);
    int j = strlen(a);
    for (int i = 0; i < j; i++) {
        b[a[i] - 'a'] += 1;
    }
    for (int i = 0; i < 26; i++) {
        if ((b[i] / 2) * 2 == b[i])
            r += b[i] / 2;
        else
            r += (b[i] + 1) / 2;
    }
    printf("%ld", r);
    return 0;
}

输入- ssss

这个程序在我的笔记本电脑上使用 DEV c++ 编译器运行良好.. 但是当我在 ideone.com 或任何其他在线编译器上运行它时,它会给出运行时错误,请告诉我这个程序有什么问题

最佳答案

您没有为a分配内存并对其执行操作。

char* a;分配内存

或者您也可以将 a 作为 char 数组,就像您对 b 所做的那样

关于c - 这个程序有什么问题吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33383390/

相关文章:

c++ - 寻找最优雅的代码调度器

algorithm - 对这些渐近符号及其运行时感到困惑

netbeans - 动态生成复选框,Netbeans

c - 为什么不推荐使用 fgets 函数?

c++ - 为什么 mstats 和 malloc_zone_statistics 不显示释放后恢复的内存?

c - 在 C 中读取二进制文件(以 block 为单位)

C程序: pointer and pointer of string

java - 使应用程序在其自己的目录中运行

c++ - 在 C++ 中动态创建函数调用

wpf - 在运行时从具有相同名称的程序集中加载 ResourceDictionary 资源