c - 如何知道指向 C 中字符串的未定义指针数组中的行数/列数?
问题描述
#include<stdio.h>
int main(){
char*s[]={"we will teach you how to","Move a mountain","Level a building","Erase the past","Make a million"};
printf("%u",sizeof(s));
return 0; }
运行这个将输出 20。大小不应该是 = 每个数组中的元素个数 x 数组个数 x sizeof(char) 吗?sizeof(s+1) 也打印 4 个字节。此外,我怎样才能获得指针数组的数量和没有。没有硬编码的上述代码中每个指针数组中的元素?
解决方案
您的数组中有 5 个条目s
。每个条目都是一个char *
. 因此sizeof(s)
是5*sizeof(char *)
。您似乎在 32 位系统上运行,因此指针大小为 4 个字节。因此总大小为 20 个字节。
我怎样才能获得指针数组的数量和没有。每个指针数组中的元素
这部分问题有点不清楚。只有一个“指针数组”是s
. 要获取数组中的元素数,您可以执行以下操作:
sizeof(s) / sizeof(*s)
要获取数组索引处字符串的长度,i
您可以执行以下操作:
strlen(s[i])
推荐阅读
- android - react-native handle device "share to" feature iOS / android
- java - 线程“主”javax.ws.rs.InternalServerErrorException 中的异常:HTTP 500 Erreur Interne de Servlet
- java - How to click on an element inside span tag? - Selenium
- c++ - 仅为具有相同基类的类授予对函数的访问权限
- java - 我可以在一个 Maven 项目中使用两个 Vaadin 版本吗(Vaadin7 和 Vaadin8)
- .net - 如何在所有控件wpf中显示一个控件
- angular - Angular Ivy:读取模块提供程序
- android - JNI GetByteArrayElements 奇怪的行为
- python-3.x - 如何在Python中以表格的形式打印一组列表类型变量?
- vue.js - 不同路线上的相同动态页面?