c - 指针作为 for 循环中的索引值
问题描述
我想for
在 C 中使用一些循环并为这些循环使用公共索引。我想使用指针,因为我以后可以释放它。
我想到了类似的东西:
uint8_t *p = malloc(sizeof(uint8_t));
for (*p = 0; *p < 255; *p++)
{
// Instructions...
}
// A few loops...
free(p);
但是这段代码不能按我的意愿工作。我该如何解决?
PS我是C指针的初学者。
解决方案
通过这一行:
uint8_t *p = malloc(sizeof(uint8_t));
您正在分配适合容纳 ONE 的内存uint8_t
。您不应该在 p 之后触摸任何其他地址,因为您没有分配它们。您可能需要执行以下操作:
uint8_t *p = malloc(255 * sizeof(uint8_t));
上一行分配的内存可以容纳 255uint8_t
而不是一个。这样,您可以访问从p
到 的地址p + 254
。
推荐阅读
- ios - Xcode:如何使用多个“显示名称”值,每个配置都不同?
- apache-camel - Apache camel - 我如何避免在单个路由中处理目标文件夹中的相同文件
- python - 'numpy.int32' 对象没有属性 'apply'
- django - 图像 ID 显然没有被创建
- azure - Azure 逻辑应用程序引发 302 重定向错误
- spring-boot - 如何在 Spring Boot 的 JSON 响应中显示异常名称
- angularjs - 如何检测对 Angular 1 的关注
- python - Mac OS 没有打开驱动
- java - 使用 JPA / Hibernate 的多层继承策略
- snowflake-cloud-data-platform - 可以在没有用户帐户或默认角色的情况下使用 SSO 登录 Snowflake 吗?