查找命令行参数中出现的字母
Find occurrences of alphabets in a command line argument
我是新来的!我正在为类编写这段代码,但我一直收到一个分段错误(核心转储)。为什么会发生这种情况?
int main(int argc,char *argv[])
{
char *store[100];int freq[100]={0};int flag;int count=0;int t;
for(int i=0,j=0;i<argc;i++)
{
for(int z=0;z<count;z++)
{
if(*argv[i]==*store[z]) flag=1;t=z;break;
}
if(flag==0) {*store[j]=*argv[i];j++; count++;}
else freq[t]+=1;
flag=0;
}
for(int x=0;x<count;x++) cout<<*store[x]<<"t"<<freq[x]<<endl;
}
您正在访问一个统一的变量,导致未定义的行为。(int标志)
在第一次迭代中,计数将等于0,因此在使用之前不会发生内部循环,因此不会分配给标志。
您似乎想将*argv[1]与*store[z]进行比较,但*store[z]的值是多少?
在使用任何变量之前,请对其进行初始化!如果它是一个指针,请确保内存为它设置了mallocated。
char *argv[]
和char *store[100]
是指向char
的指针数组,即通常以null结尾的字符串数组。
数组store
未初始化,因此它包含100个指向某个未定义内存位置的指针。
排队:
if(*argv[i]==*store[z]) flag=1;t=z;break;
您正在解引用数组CCD_ 6的索引CCD_。由于该指针未定义,程序通常会尝试访问受保护的内存位置。因此,它会分段。
相关文章:
- 如何在OMNET++中指定与命令行参数组合的输出文件名
- 如何处理linux终端中带有负号(-)的C++中的命令行参数
- 使用 C++ 将命令行参数拆分为参数/向量
- 如何在OMNET++中添加专门的命令行参数?
- 如何在不传递命令行参数的情况下在 c++ 中设置环境变量
- atoi() 在应用于大型命令行参数时会产生不正确的值
- 命令行参数,cant 或两个变量
- 在 Windows 中使用 boost::p rogram_options 从命令行参数读取 Unicode 字符
- 如何在 Android/NDK 上将命令行参数从 gradlew.bat 传递到 Clang
- 编写一个将 LLVM IR 文件作为命令行参数的程序
- 通过命令行参数获取llvm ir文件时面临问题
- 有没有办法根据命令行参数定义数组大小?运行时与编译时实例化?
- 如何在不使用文件扩展名的情况下使用命令行参数打开C++中的文本文件?
- 命令行参数在不到 3 个 LOC 中 int?
- 在命令行参数中使用引号
- 在VS2013中使用devenv (C++)传递命令行参数argv
- 二进制数据作为命令行参数
- 如何在 C++11 中创建具有命令行参数大小的动态数组?
- 需要有关如何设置getopt_long以正确传递命令行参数的建议
- Bash 脚本和命令行参数